package settings;

import colors.Color;

public class Settings 
{
	public final static int InitWindowWidth = 1900;
	public final static int GridWidth = 300;
	public final static int CanvasWidth = InitWindowWidth - GridWidth;
	public final static int InitWindowHeight = 800;
	public final static int TimeLineHeight = 100; 
	public final static int CanvasHeight = InitWindowHeight - TimeLineHeight;
	public final static boolean IsHybrid = true;
	public static final boolean isDebbugMode = true;
	public final static boolean isExperimentMode = false;
	public static final float SelectionLineWidth = 2.0f;
	
	public static float speedFactor = 100.0f;
	
	public static boolean DrawDoors = true;
	public static boolean DrawAjacencies = false;
	public static boolean DrawSubsets = true;
	public static boolean DrawRooms = true;
	public static boolean DrawSelection= true;
	public static boolean DrawTrajetories = true;

	public static float TrajectoryGradiantLength= 10000;	
	public static boolean TrajectoryGradiant = true;
	public static float TrajectoryHighLightWidth = 4;
	public static float NodeTrajectoryOffset = 20;
	public static final int NodeTrajectoryHighlightedOffset = 20;
	public static final float TrajectorySelectionRadius = 40;
	public static final boolean AutoCollapseAlgo = true;
	public static final String ImagePath = "bin/images/";
	public static final String datasetExportFolderPath = "data/";
	
	public static final float AlphaUsedForHidding = 0.2f;
	public static boolean AutoFadeTraj = true;
	
	public static boolean RoomsAreWhite = true;
	public static boolean BlackAndWhite = true;
	public static Color RoomColor = new Color(100,100,100);
	
	public static final boolean isPlaybackEnable = false;
	
	public static Color selectionColor = new Color(0.0f, 1.0f, 0.0f);
	public static float SelectionOffset = 10.0f;
	
	public static String dataPath = "./bin/data/";
	public static int nbTargets = 6;
	public static boolean GenerateRandomTargets = true;
	
	private static boolean isPolylineLinks = false;
	private static boolean isStraightDoorLinks = false;
	private static boolean isBezierLinks = true;
	public static boolean DebugBezier = false;
	public static double BezierWeightFactor = 0.1;
	
	public static double NbStopPointPerTrajectory = 6;

	public static boolean DebugInnerGraph = true;
	public static float InnerGraphNodeSize = 25;
	public static boolean HideUnnecessaryObjects = true;
	
	public static boolean isPolylineLinks() {
		return isPolylineLinks;
	}
	public static void setPolylineLinks(boolean isPolylineLinks) {
		Settings.isPolylineLinks = isPolylineLinks;
		if(isPolylineLinks)
		{
			Settings.isStraightDoorLinks = false;
			Settings.isBezierLinks = false;
		}
	}
	
	public static boolean isStraightDoorLinks() {
		return isStraightDoorLinks;
	}
	public static void setStraightDoorLinks(boolean isStraightDoorLinks) {
		Settings.isStraightDoorLinks = isStraightDoorLinks;
		if(isStraightDoorLinks)
		{
			Settings.isPolylineLinks = false;
			Settings.isBezierLinks = false;
		}
	}
	
	public static boolean isBezierLinks() {
		return isBezierLinks;
	}
	public static void setBezierLinks(boolean isBezierLinks) {
		Settings.isBezierLinks = isBezierLinks;
		if(isBezierLinks)
		{
			Settings.isPolylineLinks = false;
			Settings.isStraightDoorLinks = false;
		}
	}
}
